package com.interview202234.interview001;

import java.util.Arrays;
//题目6，双指针技巧之首尾指针
//给定数组 people 。people[i]表示第 i 个人的体重 ，
//船的数量不限，每艘船可以承载的最大重量为 limit。
//每艘船最多可同时载两人，也可一人
//但条件是这些人的重量之和最多为 limit。
//返回 承载所有人所需的最小船数 
// 测试链接 : https://leetcode.com/problems/boats-to-save-people/
public class Code06_BoatsToSavePeople {

	public static int numRescueBoats(int[] people, int limit) {
		Arrays.sort(people);
		int ans = 0;
		int l = 0;
		int r = people.length - 1;
		int sum = 0;
		while (l <= r) {
			sum = l == r ? people[l] : people[l] + people[r];
			if (sum > limit) {
				r--;
			} else {
				l++;
				r--;
			}
			ans++;
		}
		return ans;
	}
	
}
